The present invention relates to electronic communication networks, and in particular, to communication among devices and business computing systems that use disparate communication and connectivity protocols. Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Many consumer and industrial computing devices are implemented using complex and relatively expensive computer processors. Even more consumer and industrial devices are implemented using less complex and relatively inexpensive microcontrollers. Such devices range in complexity from high-performance computer systems to simple temperature sensors. For example, smart phones, tablet computers, smart refrigerators, smart houses, automobiles, and the like all include computer processors, while devices such as temperature sensors, humidity sensors, light sensors, and the like typically utilize microcontrollers configured to perform specific activities.
In all such devices, many manufacturers have taken advantage of the various degrees of processing power to gather various forms of real-time, near real-time, and time elapsed data. To retrieve the data from the devices requires various types of connectivity. Accordingly, each device may have one or more types of network capability or interfaces for receiving commands or sending data. In general, such interactivity between devices is commonly referred to as the Internet of things (IoT) and describes a rich environment in which data can be automatically captured and processed for various types of control and analysis. For the full functionality of IoT to be realized requires a systematic implementation of machine-to-machine (M2M) or device-to-device (D2D) communication, such as a common machine-to-machine connectivity protocol. Telemetry transport protocols, such as MQ telemetry transport (MQTT), are examples of such connectivity protocols.
MQTT is a publish-subscribe based “light weight” messaging protocol for use on top of the TCP/IP protocol. It was designed for connections with remote locations where a “small code footprint” is required and/or network bandwidth is limited. The design principles of MQTT are to minimize network bandwidth and device resource requirements whilst also attempting to ensure reliability and some degree of assurance of delivery. These principles also turn out to make the protocol ideal of the emerging (M2M) or IoT world of connected devices, and for mobile applications where bandwidth and battery power are at a premium. However, despite efforts to standardize MQTT, there are still many disparate implementations of the protocol that prevent devices from different manufacturers from communicating with one another.
Each device may use a proprietary version of MQTT or another communication protocol altogether. The specific communication protocol used by specific device is usually determined by the manufacturer of the device. As such, to communicate with each device requires prior knowledge of the specific communication protocol used by the device. While this is relatively simple matter for the manufacturers or implementers of the specific devices, communicating among devices from various manufacturers has limited the ability of each device to communicate with one another.